/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.dahg.project.web;

import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.dahg.project.controller.model.Factura;
import org.dahg.project.controller.model.exceptions.ValidationException;
import org.dahg.project.controller.model.services.local.PedidoService;

/**
 *
 * @author dahg
 */
@ManagedBean
@ViewScoped
public class FacturaBean extends AbstractWebBean {
    
    @EJB
    private PedidoService service;
    
    private Date desde;
    private Date hasta;
    
    private List<Factura> facturas;

    private void refresh() {
        
        try {            
            if (facturas==null)
                facturas = service.getAllFacturas(desde, hasta);
            else {
                facturas.clear();
                facturas.addAll(service.getAllFacturas(desde, hasta));
            }
            
            
        } catch (ValidationException ex) {
            addError(ex.getMessage());
        }
    }
    
    public String buscar() { 
        
        if (desde==null || hasta==null) {
            addError("Ingrese un rango de fecha");
            return null;
        }
        
        refresh();
        return null;
    }
    
    public String cerrarCaja() {
        for(Factura f:facturas) {
            f.setCerrada(Boolean.TRUE);
            service.merge(f);
        }
        
        refresh();
        
        addInfo("Caja cerrada");
        return null;
    }
    
    public Date getDesde() {
        return desde;
    }

    public void setDesde(Date desde) {
        this.desde = desde;
    }

    public Date getHasta() {
        return hasta;
    }

    public void setHasta(Date hasta) {
        this.hasta = hasta;
    }

    public List<Factura> getFacturas() {
        return facturas;
    }

    public void setFacturas(List<Factura> facturas) {
        this.facturas = facturas;
    }
    
    
}
